home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / sys / timex.h < prev    next >
C/C++ Source or Header  |  2009-10-07  |  5KB  |  137 lines

  1. /* Copyright (C) 1995-1997, 1999, 2007, 2009 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef    _SYS_TIMEX_H
  20. #define    _SYS_TIMEX_H    1
  21.  
  22. #include <features.h>
  23. #include <sys/time.h>
  24.  
  25. /* These definitions from linux/timex.h as of 2.6.30.  */
  26.  
  27. struct ntptimeval
  28. {
  29.   struct timeval time;    /* current time (ro) */
  30.   long int maxerror;    /* maximum error (us) (ro) */
  31.   long int esterror;    /* estimated error (us) (ro) */
  32. };
  33.  
  34. struct timex
  35. {
  36.   unsigned int modes;    /* mode selector */
  37.   long int offset;    /* time offset (usec) */
  38.   long int freq;    /* frequency offset (scaled ppm) */
  39.   long int maxerror;    /* maximum error (usec) */
  40.   long int esterror;    /* estimated error (usec) */
  41.   int status;        /* clock command/status */
  42.   long int constant;    /* pll time constant */
  43.   long int precision;    /* clock precision (usec) (read only) */
  44.   long int tolerance;    /* clock frequency tolerance (ppm) (read only) */
  45.   struct timeval time;    /* (read only) */
  46.   long int tick;    /* (modified) usecs between clock ticks */
  47.  
  48.   long int ppsfreq;    /* pps frequency (scaled ppm) (ro) */
  49.   long int jitter;    /* pps jitter (us) (ro) */
  50.   int shift;        /* interval duration (s) (shift) (ro) */
  51.   long int stabil;    /* pps stability (scaled ppm) (ro) */
  52.   long int jitcnt;    /* jitter limit exceeded (ro) */
  53.   long int calcnt;    /* calibration intervals (ro) */
  54.   long int errcnt;    /* calibration errors (ro) */
  55.   long int stbcnt;    /* stability limit exceeded (ro) */
  56.  
  57.   int tai;        /* TAI offset (ro) */
  58.  
  59.   /* ??? */
  60.   int  :32; int  :32; int  :32; int  :32;
  61.   int  :32; int  :32; int  :32; int  :32;
  62.   int  :32; int  :32; int  :32;
  63. };
  64.  
  65. /* Mode codes (timex.mode) */
  66. #define ADJ_OFFSET        0x0001    /* time offset */
  67. #define ADJ_FREQUENCY        0x0002    /* frequency offset */
  68. #define ADJ_MAXERROR        0x0004    /* maximum time error */
  69. #define ADJ_ESTERROR        0x0008    /* estimated time error */
  70. #define ADJ_STATUS        0x0010    /* clock status */
  71. #define ADJ_TIMECONST        0x0020    /* pll time constant */
  72. #define ADJ_TAI            0x0080    /* set TAI offset */
  73. #define ADJ_MICRO        0x1000    /* select microsecond resolution */
  74. #define ADJ_NANO        0x2000    /* select nanosecond resolution */
  75. #define ADJ_TICK        0x4000    /* tick value */
  76. #define ADJ_OFFSET_SINGLESHOT    0x8001    /* old-fashioned adjtime */
  77. #define ADJ_OFFSET_SS_READ    0xa001    /* read-only adjtime */
  78.  
  79. /* xntp 3.4 compatibility names */
  80. #define MOD_OFFSET    ADJ_OFFSET
  81. #define MOD_FREQUENCY    ADJ_FREQUENCY
  82. #define MOD_MAXERROR    ADJ_MAXERROR
  83. #define MOD_ESTERROR    ADJ_ESTERROR
  84. #define MOD_STATUS    ADJ_STATUS
  85. #define MOD_TIMECONST    ADJ_TIMECONST
  86. #define MOD_CLKB    ADJ_TICK
  87. #define MOD_CLKA    ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
  88.  
  89.  
  90. /* Status codes (timex.status) */
  91. #define STA_PLL        0x0001    /* enable PLL updates (rw) */
  92. #define STA_PPSFREQ    0x0002    /* enable PPS freq discipline (rw) */
  93. #define STA_PPSTIME    0x0004    /* enable PPS time discipline (rw) */
  94. #define STA_FLL        0x0008    /* select frequency-lock mode (rw) */
  95.  
  96. #define STA_INS        0x0010    /* insert leap (rw) */
  97. #define STA_DEL        0x0020    /* delete leap (rw) */
  98. #define STA_UNSYNC    0x0040    /* clock unsynchronized (rw) */
  99. #define STA_FREQHOLD    0x0080    /* hold frequency (rw) */
  100.  
  101. #define STA_PPSSIGNAL    0x0100    /* PPS signal present (ro) */
  102. #define STA_PPSJITTER    0x0200    /* PPS signal jitter exceeded (ro) */
  103. #define STA_PPSWANDER    0x0400    /* PPS signal wander exceeded (ro) */
  104. #define STA_PPSERROR    0x0800    /* PPS signal calibration error (ro) */
  105.  
  106. #define STA_CLOCKERR    0x1000    /* clock hardware fault (ro) */
  107. #define STA_NANO    0x2000    /* resolution (0 = us, 1 = ns) (ro) */
  108. #define STA_MODE    0x4000    /* mode (0 = PLL, 1 = FLL) (ro) */
  109. #define STA_CLK        0x8000    /* clock source (0 = A, 1 = B) (ro) */
  110.  
  111. #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
  112.     STA_PPSERROR | STA_CLOCKERR) /* read-only bits */
  113.  
  114. /* Clock states (time_state) */
  115. #define TIME_OK        0    /* clock synchronized, no leap second */
  116. #define TIME_INS    1    /* insert leap second */
  117. #define TIME_DEL    2    /* delete leap second */
  118. #define TIME_OOP    3    /* leap second in progress */
  119. #define TIME_WAIT    4    /* leap second has occurred */
  120. #define TIME_ERROR    5    /* clock not synchronized */
  121. #define TIME_BAD    TIME_ERROR /* bw compat */
  122.  
  123. /* Maximum time constant of the PLL.  */
  124. #define MAXTC        6
  125.  
  126. __BEGIN_DECLS
  127.  
  128. extern int __adjtimex (struct timex *__ntx) __THROW;
  129. extern int adjtimex (struct timex *__ntx) __THROW;
  130.  
  131. extern int ntp_gettime (struct ntptimeval *__ntv) __THROW;
  132. extern int ntp_adjtime (struct timex *__tntx) __THROW;
  133.  
  134. __END_DECLS
  135.  
  136. #endif /* sys/timex.h */
  137.